'\" te
.\" Copyright (C) 1998-2003, Carnegie Mellon Univeristy.  All Rights Reserved.
.\" Portions Copyright (C) 2003, Sun Microsystems,
.\" Inc. All Rights Reserved
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH SASL_SERVER_START 3SASL "Oct 1, 2003"
.SH NAME
sasl_server_start \- create a new server authentication object
.SH SYNOPSIS
.LP
.nf
\fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-lsasl\fR   [ \fIlibrary\fR ... ]
#include <sasl/sasl.h>

\fBint\fR \fBsasl_server_start\fR(\fBsasl_conn_t *\fR\fIconn\fR, \fBconst char  *\fR\fImech\fR,
     \fBconst char  *\fR\fIclientin\fR,\ \fBunsigned *\fR\fIclientinlen\fR,
     \fBconst char  **\fR\fIserverout\fR, \fBunsigned *\fR\fIserveroutlen\fR);
.fi

.SH DESCRIPTION
.sp
.LP
The \fBsasl_server_start()\fR interface begins the authentication with the
mechanism specified by the \fImech\fR parameter. \fBsasl_server_start()\fR
fails if the mechanism is not supported.
.SH PARAMETERS
.sp
.ne 2
.na
\fB\fIconn\fR\fR
.ad
.RS 16n
The SASL context for this connection.
.RE

.sp
.ne 2
.na
\fB\fImech\fR\fR
.ad
.RS 16n
The mechanism name that the client requested.
.RE

.sp
.ne 2
.na
\fB\fIclientin\fR\fR
.ad
.RS 16n
The initial response from the client. The value of \fIclientin\fR is \fINULL\fR
if the protocol lacks support for the client-send-first or if the other end did
not have an initial send. No initial client send is distinct from an initial
send of a null string. The protocol must account for this difference.
.RE

.sp
.ne 2
.na
\fB\fIclientinlen\fR\fR
.ad
.RS 16n
The length of the initial response.
.RE

.sp
.ne 2
.na
\fB\fIserverout\fR\fR
.ad
.RS 16n
Created by the plugin library. The value of \fIserverout\fR is the initial
server response to send to the client. \fIserverout\fR is allocated or freed by
the library. It is the job of the client to send it over the network to the
server. Protocol specific encoding, for example \fBbase64\fR encoding, must be
done by the server.
.RE

.sp
.ne 2
.na
\fB\fIserveroutlen\fR\fR
.ad
.RS 16n
The length of the initial server challenge.
.RE

.SH RETURN VALUES
.sp
.LP
\fBsasl_server_start()\fR returns an integer that corresponds to a SASL error
code.
.SH ERRORS
.sp
.ne 2
.na
\fB\fBSASL_OK\fR\fR
.ad
.RS 17n
Authentication completed successfully.
.RE

.sp
.ne 2
.na
\fB\fBSASL_CONTINUE\fR\fR
.ad
.RS 17n
The call to \fBsasl_server_start()\fR was successful, and more steps are needed
in the authentication.
.RE

.sp
.LP
All other error codes indicate an error situation that must be handled, or the
authentication session should be quit. See \fBsasl_errors\fR(3SASL) for
information on SASL error codes.
.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(7) for descriptions of the following attributes:
.sp

.sp
.TS
box;
c | c
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE
_
Interface Stability	Evolving
_
MT-Level	MT-Safe
.TE

.SH SEE ALSO
.sp
.LP
.BR gethostname (3C),
.BR sasl_errors (3SASL),
.BR attributes (7)
